package cn.wgx.modules.sys.entity;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class SysDictExample {

    /**
     * @mbg.generated Wed Jul 24 14:18:16 CST 2019
     */
    public SysDictExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    /**
     * @mbg.generated Wed Jul 24 14:18:23 CST 2019
     */
    protected String orderByClause;

    /**
     * @mbg.generated Wed Jul 24 14:18:23 CST 2019
     */
    protected List<Criteria> oredCriteria;

    /**
     * @mbg.generated Wed Jul 24 14:18:23 CST 2019
     */
    protected boolean distinct;

    /**
     * @mbg.generated Wed Jul 24 14:18:23 CST 2019
     */
    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    /**
     * @mbg.generated Wed Jul 24 14:18:23 CST 2019
     */
    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    /**
     * @mbg.generated Wed Jul 24 14:18:23 CST 2019
     */
    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    /**
     * @mbg.generated Wed Jul 24 14:18:23 CST 2019
     */
    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    /**
     * @mbg.generated Wed Jul 24 14:18:23 CST 2019
     */
    public boolean isDistinct() {
        return distinct;
    }

    /**
     * @mbg.generated Wed Jul 24 14:18:23 CST 2019
     */
    public String getOrderByClause() {
        return orderByClause;
    }

    /**
     * @mbg.generated Wed Jul 24 14:18:23 CST 2019
     */
    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    /**
     * @mbg.generated Wed Jul 24 14:18:23 CST 2019
     */
    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    /**
     * @mbg.generated Wed Jul 24 14:18:23 CST 2019
     */
    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    /**
     * @mbg.generated Wed Jul 24 14:18:23 CST 2019
     */
    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    /**
     * @mbg.generated do_not_delete_during_merge Wed Jul 24 14:18:23 CST 2019
     */
    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    /**
     * @mbg.generated Wed Jul 24 14:18:23 CST 2019
     */
    protected abstract static class GeneratedCriteria {

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        protected List<Criterion> criteria;

        public Criteria andRemarksLikeInsensitive(String value) {
            addCriterion("upper(t.remarks) like", value.toUpperCase(), "remarks");
            return (Criteria) this;
        }

        public Criteria andRemarksLessThanOrEqualTo(String value) {
            addCriterion("t.remarks <=", value, "remarks");
            return (Criteria) this;
        }

        public Criteria andDict_idIn(List<Integer> values) {
            addCriterion("t.dict_id in", values, "dict_id");
            return (Criteria) this;
        }

        public Criteria andKLessThan(String value) {
            addCriterion("t.k <", value, "k");
            return (Criteria) this;
        }

        public Criteria andVLessThanOrEqualTo(String value) {
            addCriterion("t.v <=", value, "v");
            return (Criteria) this;
        }

        public Criteria andParentIdIsNotNull() {
            addCriterion("t.parentId is not null");
            return (Criteria) this;
        }

        public Criteria andCreateDateNotBetween(Date value1, Date value2) {
            addCriterion("t.createDate not between", value1, value2, "createDate");
            return (Criteria) this;
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        public Criteria andUpdateDateIn(List<Date> values) {
            addCriterion("t.updateDate in", values, "updateDate");
            return (Criteria) this;
        }

        public Criteria andCreateUserIdIn(List<Integer> values) {
            addCriterion("t.createUserId in", values, "createUserId");
            return (Criteria) this;
        }

        public Criteria andUpdateUserIdIn(List<Integer> values) {
            addCriterion("t.updateUserId in", values, "updateUserId");
            return (Criteria) this;
        }

        public Criteria andDescriptionNotEqualTo(String value) {
            addCriterion("t.description <>", value, "description");
            return (Criteria) this;
        }

        public Criteria andCreateUserIdNotIn(List<Integer> values) {
            addCriterion("t.createUserId not in", values, "createUserId");
            return (Criteria) this;
        }

        public Criteria andSortNotBetween(Integer value1, Integer value2) {
            addCriterion("t.sort not between", value1, value2, "sort");
            return (Criteria) this;
        }

        public Criteria andTypeLikeInsensitive(String value) {
            addCriterion("upper(t.type) like", value.toUpperCase(), "type");
            return (Criteria) this;
        }

        public Criteria andRemarksGreaterThan(String value) {
            addCriterion("t.remarks >", value, "remarks");
            return (Criteria) this;
        }

        public Criteria andCreateUserIdBetween(Integer value1, Integer value2) {
            addCriterion("t.createUserId between", value1, value2, "createUserId");
            return (Criteria) this;
        }

        public Criteria andCreateDateNotEqualTo(Date value) {
            addCriterion("t.createDate <>", value, "createDate");
            return (Criteria) this;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        public Criteria andRemarksGreaterThanOrEqualTo(String value) {
            addCriterion("t.remarks >=", value, "remarks");
            return (Criteria) this;
        }

        public Criteria andUpdateDateGreaterThanOrEqualTo(Date value) {
            addCriterion("t.updateDate >=", value, "updateDate");
            return (Criteria) this;
        }

        public Criteria andExtendValueNotIn(List<String> values) {
            addCriterion("t.extendValue not in", values, "extendValue");
            return (Criteria) this;
        }

        public Criteria andRemarksIn(List<String> values) {
            addCriterion("t.remarks in", values, "remarks");
            return (Criteria) this;
        }

        public Criteria andUpdateUserIdIsNotNull() {
            addCriterion("t.updateUserId is not null");
            return (Criteria) this;
        }

        public Criteria andDict_idNotIn(List<Integer> values) {
            addCriterion("t.dict_id not in", values, "dict_id");
            return (Criteria) this;
        }

        public Criteria andCreateDateLessThanOrEqualTo(Date value) {
            addCriterion("t.createDate <=", value, "createDate");
            return (Criteria) this;
        }

        public Criteria andParentKeyIsNotNull() {
            addCriterion("t.parentKey is not null");
            return (Criteria) this;
        }

        public Criteria andParentKeyNotIn(List<String> values) {
            addCriterion("t.parentKey not in", values, "parentKey");
            return (Criteria) this;
        }

        public Criteria andTypeBetween(String value1, String value2) {
            addCriterion("t.type between", value1, value2, "type");
            return (Criteria) this;
        }

        public Criteria andRemarksBetween(String value1, String value2) {
            addCriterion("t.remarks between", value1, value2, "remarks");
            return (Criteria) this;
        }

        public Criteria andParentKeyIn(List<String> values) {
            addCriterion("t.parentKey in", values, "parentKey");
            return (Criteria) this;
        }

        public Criteria andCreateDateIsNull() {
            addCriterion("t.createDate is null");
            return (Criteria) this;
        }

        public Criteria andSortLessThanOrEqualTo(Integer value) {
            addCriterion("t.sort <=", value, "sort");
            return (Criteria) this;
        }

        public Criteria andUpdateDateIsNull() {
            addCriterion("t.updateDate is null");
            return (Criteria) this;
        }

        public Criteria andSortIsNotNull() {
            addCriterion("t.sort is not null");
            return (Criteria) this;
        }

        public Criteria andDict_idLessThan(Integer value) {
            addCriterion("t.dict_id <", value, "dict_id");
            return (Criteria) this;
        }

        public Criteria andTypeLessThanOrEqualTo(String value) {
            addCriterion("t.type <=", value, "type");
            return (Criteria) this;
        }

        public Criteria andExtendValueNotBetween(String value1, String value2) {
            addCriterion("t.extendValue not between", value1, value2, "extendValue");
            return (Criteria) this;
        }

        public Criteria andKNotEqualTo(String value) {
            addCriterion("t.k <>", value, "k");
            return (Criteria) this;
        }

        public Criteria andDescriptionGreaterThanOrEqualTo(String value) {
            addCriterion("t.description >=", value, "description");
            return (Criteria) this;
        }

        public Criteria andUpdateDateNotBetween(Date value1, Date value2) {
            addCriterion("t.updateDate not between", value1, value2, "updateDate");
            return (Criteria) this;
        }

        public Criteria andParentKeyNotEqualTo(String value) {
            addCriterion("t.parentKey <>", value, "parentKey");
            return (Criteria) this;
        }

        public Criteria andCreateDateGreaterThanOrEqualTo(Date value) {
            addCriterion("t.createDate >=", value, "createDate");
            return (Criteria) this;
        }

        public Criteria andKIsNotNull() {
            addCriterion("t.k is not null");
            return (Criteria) this;
        }

        public Criteria andCreateUserIdLessThan(Integer value) {
            addCriterion("t.createUserId <", value, "createUserId");
            return (Criteria) this;
        }

        public Criteria andUpdateUserIdLessThan(Integer value) {
            addCriterion("t.updateUserId <", value, "updateUserId");
            return (Criteria) this;
        }

        public Criteria andDescriptionNotIn(List<String> values) {
            addCriterion("t.description not in", values, "description");
            return (Criteria) this;
        }

        public Criteria andCreateDateGreaterThan(Date value) {
            addCriterion("t.createDate >", value, "createDate");
            return (Criteria) this;
        }

        public Criteria andKNotLike(String value) {
            addCriterion("t.k not like", value, "k");
            return (Criteria) this;
        }

        public Criteria andVIsNull() {
            addCriterion("t.v is null");
            return (Criteria) this;
        }

        public Criteria andParentKeyLike(String value) {
            addCriterion("t.parentKey like", value, "parentKey");
            return (Criteria) this;
        }

        public Criteria andCreateUserIdIsNotNull() {
            addCriterion("t.createUserId is not null");
            return (Criteria) this;
        }

        public Criteria andUpdateUserIdNotIn(List<Integer> values) {
            addCriterion("t.updateUserId not in", values, "updateUserId");
            return (Criteria) this;
        }

        public Criteria andExtendValueIsNotNull() {
            addCriterion("t.extendValue is not null");
            return (Criteria) this;
        }

        public Criteria andSortIsNull() {
            addCriterion("t.sort is null");
            return (Criteria) this;
        }

        public Criteria andCreateUserIdEqualTo(Integer value) {
            addCriterion("t.createUserId =", value, "createUserId");
            return (Criteria) this;
        }

        public Criteria andDict_idNotBetween(Integer value1, Integer value2) {
            addCriterion("t.dict_id not between", value1, value2, "dict_id");
            return (Criteria) this;
        }

        public Criteria andCreateUserIdIsNull() {
            addCriterion("t.createUserId is null");
            return (Criteria) this;
        }

        public Criteria andCreateUserIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("t.createUserId >=", value, "createUserId");
            return (Criteria) this;
        }

        public Criteria andExtendValueIsNull() {
            addCriterion("t.extendValue is null");
            return (Criteria) this;
        }

        public Criteria andDict_idIsNotNull() {
            addCriterion("t.dict_id is not null");
            return (Criteria) this;
        }

        public Criteria andRemarksEqualTo(String value) {
            addCriterion("t.remarks =", value, "remarks");
            return (Criteria) this;
        }

        public Criteria andParentKeyLikeInsensitive(String value) {
            addCriterion("upper(t.parentKey) like", value.toUpperCase(), "parentKey");
            return (Criteria) this;
        }

        public Criteria andSortIn(List<Integer> values) {
            addCriterion("t.sort in", values, "sort");
            return (Criteria) this;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        public Criteria andKGreaterThan(String value) {
            addCriterion("t.k >", value, "k");
            return (Criteria) this;
        }

        public Criteria andCreateUserIdNotEqualTo(Integer value) {
            addCriterion("t.createUserId <>", value, "createUserId");
            return (Criteria) this;
        }

        public Criteria andUpdateUserIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("t.updateUserId >=", value, "updateUserId");
            return (Criteria) this;
        }

        public Criteria andTypeIsNull() {
            addCriterion("t.type is null");
            return (Criteria) this;
        }

        public Criteria andTypeIsNotNull() {
            addCriterion("t.type is not null");
            return (Criteria) this;
        }

        public Criteria andSortEqualTo(Integer value) {
            addCriterion("t.sort =", value, "sort");
            return (Criteria) this;
        }

        public Criteria andVLike(String value) {
            addCriterion("t.v like", value, "v");
            return (Criteria) this;
        }

        public Criteria andUpdateDateNotIn(List<Date> values) {
            addCriterion("t.updateDate not in", values, "updateDate");
            return (Criteria) this;
        }

        public Criteria andCreateUserIdGreaterThan(Integer value) {
            addCriterion("t.createUserId >", value, "createUserId");
            return (Criteria) this;
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andDescriptionIsNotNull() {
            addCriterion("t.description is not null");
            return (Criteria) this;
        }

        public Criteria andKGreaterThanOrEqualTo(String value) {
            addCriterion("t.k >=", value, "k");
            return (Criteria) this;
        }

        public Criteria andSortNotEqualTo(Integer value) {
            addCriterion("t.sort <>", value, "sort");
            return (Criteria) this;
        }

        public Criteria andParentKeyBetween(String value1, String value2) {
            addCriterion("t.parentKey between", value1, value2, "parentKey");
            return (Criteria) this;
        }

        public Criteria andParentIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("t.parentId >=", value, "parentId");
            return (Criteria) this;
        }

        public Criteria andTypeLessThan(String value) {
            addCriterion("t.type <", value, "type");
            return (Criteria) this;
        }

        public Criteria andKLessThanOrEqualTo(String value) {
            addCriterion("t.k <=", value, "k");
            return (Criteria) this;
        }

        public Criteria andUpdateDateEqualTo(Date value) {
            addCriterion("t.updateDate =", value, "updateDate");
            return (Criteria) this;
        }

        public Criteria andDict_idGreaterThan(Integer value) {
            addCriterion("t.dict_id >", value, "dict_id");
            return (Criteria) this;
        }

        public Criteria andTypeGreaterThan(String value) {
            addCriterion("t.type >", value, "type");
            return (Criteria) this;
        }

        public Criteria andUpdateDateNotEqualTo(Date value) {
            addCriterion("t.updateDate <>", value, "updateDate");
            return (Criteria) this;
        }

        public Criteria andVGreaterThan(String value) {
            addCriterion("t.v >", value, "v");
            return (Criteria) this;
        }

        public Criteria andKNotBetween(String value1, String value2) {
            addCriterion("t.k not between", value1, value2, "k");
            return (Criteria) this;
        }

        public Criteria andDescriptionLessThan(String value) {
            addCriterion("t.description <", value, "description");
            return (Criteria) this;
        }

        public Criteria andTypeLike(String value) {
            addCriterion("t.type like", value, "type");
            return (Criteria) this;
        }

        public Criteria andUpdateDateIsNotNull() {
            addCriterion("t.updateDate is not null");
            return (Criteria) this;
        }

        public Criteria andParentIdBetween(Integer value1, Integer value2) {
            addCriterion("t.parentId between", value1, value2, "parentId");
            return (Criteria) this;
        }

        public Criteria andParentIdNotEqualTo(Integer value) {
            addCriterion("t.parentId <>", value, "parentId");
            return (Criteria) this;
        }

        public Criteria andTypeNotBetween(String value1, String value2) {
            addCriterion("t.type not between", value1, value2, "type");
            return (Criteria) this;
        }

        public Criteria andDict_idEqualTo(Integer value) {
            addCriterion("t.dict_id =", value, "dict_id");
            return (Criteria) this;
        }

        public Criteria andTypeNotEqualTo(String value) {
            addCriterion("t.type <>", value, "type");
            return (Criteria) this;
        }

        public Criteria andRemarksIsNotNull() {
            addCriterion("t.remarks is not null");
            return (Criteria) this;
        }

        public Criteria andExtendValueLike(String value) {
            addCriterion("t.extendValue like", value, "extendValue");
            return (Criteria) this;
        }

        public Criteria andRemarksLike(String value) {
            addCriterion("t.remarks like", value, "remarks");
            return (Criteria) this;
        }

        public Criteria andSortLessThan(Integer value) {
            addCriterion("t.sort <", value, "sort");
            return (Criteria) this;
        }

        public Criteria andUpdateUserIdGreaterThan(Integer value) {
            addCriterion("t.updateUserId >", value, "updateUserId");
            return (Criteria) this;
        }

        public Criteria andExtendValueIn(List<String> values) {
            addCriterion("t.extendValue in", values, "extendValue");
            return (Criteria) this;
        }

        public Criteria andParentKeyNotBetween(String value1, String value2) {
            addCriterion("t.parentKey not between", value1, value2, "parentKey");
            return (Criteria) this;
        }

        public Criteria andCreateDateIsNotNull() {
            addCriterion("t.createDate is not null");
            return (Criteria) this;
        }

        public Criteria andVIn(List<String> values) {
            addCriterion("t.v in", values, "v");
            return (Criteria) this;
        }

        public Criteria andExtendValueLikeInsensitive(String value) {
            addCriterion("upper(t.extendValue) like", value.toUpperCase(), "extendValue");
            return (Criteria) this;
        }

        public Criteria andUpdateDateLessThanOrEqualTo(Date value) {
            addCriterion("t.updateDate <=", value, "updateDate");
            return (Criteria) this;
        }

        public Criteria andSortNotIn(List<Integer> values) {
            addCriterion("t.sort not in", values, "sort");
            return (Criteria) this;
        }

        public Criteria andExtendValueLessThanOrEqualTo(String value) {
            addCriterion("t.extendValue <=", value, "extendValue");
            return (Criteria) this;
        }

        public Criteria andDict_idIsNull() {
            addCriterion("t.dict_id is null");
            return (Criteria) this;
        }

        public Criteria andRemarksIsNull() {
            addCriterion("t.remarks is null");
            return (Criteria) this;
        }

        public Criteria andCreateUserIdLessThanOrEqualTo(Integer value) {
            addCriterion("t.createUserId <=", value, "createUserId");
            return (Criteria) this;
        }

        public Criteria andDict_idLessThanOrEqualTo(Integer value) {
            addCriterion("t.dict_id <=", value, "dict_id");
            return (Criteria) this;
        }

        public Criteria andExtendValueBetween(String value1, String value2) {
            addCriterion("t.extendValue between", value1, value2, "extendValue");
            return (Criteria) this;
        }

        public Criteria andTypeGreaterThanOrEqualTo(String value) {
            addCriterion("t.type >=", value, "type");
            return (Criteria) this;
        }

        public Criteria andExtendValueEqualTo(String value) {
            addCriterion("t.extendValue =", value, "extendValue");
            return (Criteria) this;
        }

        public Criteria andRemarksLessThan(String value) {
            addCriterion("t.remarks <", value, "remarks");
            return (Criteria) this;
        }

        public Criteria andDescriptionEqualTo(String value) {
            addCriterion("t.description =", value, "description");
            return (Criteria) this;
        }

        public Criteria andParentKeyEqualTo(String value) {
            addCriterion("t.parentKey =", value, "parentKey");
            return (Criteria) this;
        }

        public Criteria andRemarksNotIn(List<String> values) {
            addCriterion("t.remarks not in", values, "remarks");
            return (Criteria) this;
        }

        public Criteria andParentKeyGreaterThanOrEqualTo(String value) {
            addCriterion("t.parentKey >=", value, "parentKey");
            return (Criteria) this;
        }

        public Criteria andParentIdIsNull() {
            addCriterion("t.parentId is null");
            return (Criteria) this;
        }

        public Criteria andRemarksNotBetween(String value1, String value2) {
            addCriterion("t.remarks not between", value1, value2, "remarks");
            return (Criteria) this;
        }

        public Criteria andVIsNotNull() {
            addCriterion("t.v is not null");
            return (Criteria) this;
        }

        public Criteria andCreateDateEqualTo(Date value) {
            addCriterion("t.createDate =", value, "createDate");
            return (Criteria) this;
        }

        public Criteria andKIsNull() {
            addCriterion("t.k is null");
            return (Criteria) this;
        }

        public Criteria andParentIdEqualTo(Integer value) {
            addCriterion("t.parentId =", value, "parentId");
            return (Criteria) this;
        }

        public Criteria andParentKeyLessThan(String value) {
            addCriterion("t.parentKey <", value, "parentKey");
            return (Criteria) this;
        }

        public Criteria andTypeEqualTo(String value) {
            addCriterion("t.type =", value, "type");
            return (Criteria) this;
        }

        public Criteria andCreateDateBetween(Date value1, Date value2) {
            addCriterion("t.createDate between", value1, value2, "createDate");
            return (Criteria) this;
        }

        public Criteria andRemarksNotEqualTo(String value) {
            addCriterion("t.remarks <>", value, "remarks");
            return (Criteria) this;
        }

        public Criteria andUpdateDateBetween(Date value1, Date value2) {
            addCriterion("t.updateDate between", value1, value2, "updateDate");
            return (Criteria) this;
        }

        public Criteria andVEqualTo(String value) {
            addCriterion("t.v =", value, "v");
            return (Criteria) this;
        }

        public Criteria andDict_idBetween(Integer value1, Integer value2) {
            addCriterion("t.dict_id between", value1, value2, "dict_id");
            return (Criteria) this;
        }

        public Criteria andSortGreaterThanOrEqualTo(Integer value) {
            addCriterion("t.sort >=", value, "sort");
            return (Criteria) this;
        }

        public Criteria andKIn(List<String> values) {
            addCriterion("t.k in", values, "k");
            return (Criteria) this;
        }

        public Criteria andUpdateDateGreaterThan(Date value) {
            addCriterion("t.updateDate >", value, "updateDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateLessThan(Date value) {
            addCriterion("t.createDate <", value, "createDate");
            return (Criteria) this;
        }

        public Criteria andExtendValueNotEqualTo(String value) {
            addCriterion("t.extendValue <>", value, "extendValue");
            return (Criteria) this;
        }

        public Criteria andRemarksNotLike(String value) {
            addCriterion("t.remarks not like", value, "remarks");
            return (Criteria) this;
        }

        public Criteria andParentIdLessThanOrEqualTo(Integer value) {
            addCriterion("t.parentId <=", value, "parentId");
            return (Criteria) this;
        }

        public Criteria andExtendValueGreaterThan(String value) {
            addCriterion("t.extendValue >", value, "extendValue");
            return (Criteria) this;
        }

        public Criteria andParentKeyGreaterThan(String value) {
            addCriterion("t.parentKey >", value, "parentKey");
            return (Criteria) this;
        }

        public Criteria andSortGreaterThan(Integer value) {
            addCriterion("t.sort >", value, "sort");
            return (Criteria) this;
        }

        public Criteria andUpdateUserIdIsNull() {
            addCriterion("t.updateUserId is null");
            return (Criteria) this;
        }

        public Criteria andKNotIn(List<String> values) {
            addCriterion("t.k not in", values, "k");
            return (Criteria) this;
        }

        public Criteria andDescriptionLike(String value) {
            addCriterion("t.description like", value, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionIsNull() {
            addCriterion("t.description is null");
            return (Criteria) this;
        }

        public Criteria andParentIdNotIn(List<Integer> values) {
            addCriterion("t.parentId not in", values, "parentId");
            return (Criteria) this;
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public Criteria andParentIdIn(List<Integer> values) {
            addCriterion("t.parentId in", values, "parentId");
            return (Criteria) this;
        }

        public Criteria andUpdateUserIdNotBetween(Integer value1, Integer value2) {
            addCriterion("t.updateUserId not between", value1, value2, "updateUserId");
            return (Criteria) this;
        }

        public Criteria andDescriptionGreaterThan(String value) {
            addCriterion("t.description >", value, "description");
            return (Criteria) this;
        }

        public Criteria andDict_idGreaterThanOrEqualTo(Integer value) {
            addCriterion("t.dict_id >=", value, "dict_id");
            return (Criteria) this;
        }

        public Criteria andCreateDateIn(List<Date> values) {
            addCriterion("t.createDate in", values, "createDate");
            return (Criteria) this;
        }

        public Criteria andVNotBetween(String value1, String value2) {
            addCriterion("t.v not between", value1, value2, "v");
            return (Criteria) this;
        }

        public Criteria andVLikeInsensitive(String value) {
            addCriterion("upper(t.v) like", value.toUpperCase(), "v");
            return (Criteria) this;
        }

        public Criteria andTypeNotIn(List<String> values) {
            addCriterion("t.type not in", values, "type");
            return (Criteria) this;
        }

        public Criteria andDescriptionNotLike(String value) {
            addCriterion("t.description not like", value, "description");
            return (Criteria) this;
        }

        public Criteria andParentKeyNotLike(String value) {
            addCriterion("t.parentKey not like", value, "parentKey");
            return (Criteria) this;
        }

        public Criteria andUpdateUserIdLessThanOrEqualTo(Integer value) {
            addCriterion("t.updateUserId <=", value, "updateUserId");
            return (Criteria) this;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public Criteria andSortBetween(Integer value1, Integer value2) {
            addCriterion("t.sort between", value1, value2, "sort");
            return (Criteria) this;
        }

        public Criteria andVNotIn(List<String> values) {
            addCriterion("t.v not in", values, "v");
            return (Criteria) this;
        }

        public Criteria andCreateUserIdNotBetween(Integer value1, Integer value2) {
            addCriterion("t.createUserId not between", value1, value2, "createUserId");
            return (Criteria) this;
        }

        public Criteria andVNotEqualTo(String value) {
            addCriterion("t.v <>", value, "v");
            return (Criteria) this;
        }

        public Criteria andDescriptionLessThanOrEqualTo(String value) {
            addCriterion("t.description <=", value, "description");
            return (Criteria) this;
        }

        public Criteria andParentKeyLessThanOrEqualTo(String value) {
            addCriterion("t.parentKey <=", value, "parentKey");
            return (Criteria) this;
        }

        public Criteria andKLikeInsensitive(String value) {
            addCriterion("upper(t.k) like", value.toUpperCase(), "k");
            return (Criteria) this;
        }

        public Criteria andDict_idNotEqualTo(Integer value) {
            addCriterion("t.dict_id <>", value, "dict_id");
            return (Criteria) this;
        }

        public Criteria andUpdateUserIdEqualTo(Integer value) {
            addCriterion("t.updateUserId =", value, "updateUserId");
            return (Criteria) this;
        }

        public Criteria andExtendValueNotLike(String value) {
            addCriterion("t.extendValue not like", value, "extendValue");
            return (Criteria) this;
        }

        public Criteria andExtendValueLessThan(String value) {
            addCriterion("t.extendValue <", value, "extendValue");
            return (Criteria) this;
        }

        public Criteria andTypeIn(List<String> values) {
            addCriterion("t.type in", values, "type");
            return (Criteria) this;
        }

        public Criteria andExtendValueGreaterThanOrEqualTo(String value) {
            addCriterion("t.extendValue >=", value, "extendValue");
            return (Criteria) this;
        }

        public Criteria andCreateDateNotIn(List<Date> values) {
            addCriterion("t.createDate not in", values, "createDate");
            return (Criteria) this;
        }

        public Criteria andParentIdNotBetween(Integer value1, Integer value2) {
            addCriterion("t.parentId not between", value1, value2, "parentId");
            return (Criteria) this;
        }

        public Criteria andVLessThan(String value) {
            addCriterion("t.v <", value, "v");
            return (Criteria) this;
        }

        public Criteria andDescriptionLikeInsensitive(String value) {
            addCriterion("upper(t.description) like", value.toUpperCase(), "description");
            return (Criteria) this;
        }

        public Criteria andVGreaterThanOrEqualTo(String value) {
            addCriterion("t.v >=", value, "v");
            return (Criteria) this;
        }

        public Criteria andKLike(String value) {
            addCriterion("t.k like", value, "k");
            return (Criteria) this;
        }

        public Criteria andKBetween(String value1, String value2) {
            addCriterion("t.k between", value1, value2, "k");
            return (Criteria) this;
        }

        public Criteria andUpdateUserIdBetween(Integer value1, Integer value2) {
            addCriterion("t.updateUserId between", value1, value2, "updateUserId");
            return (Criteria) this;
        }

        public Criteria andParentIdLessThan(Integer value) {
            addCriterion("t.parentId <", value, "parentId");
            return (Criteria) this;
        }

        public Criteria andVBetween(String value1, String value2) {
            addCriterion("t.v between", value1, value2, "v");
            return (Criteria) this;
        }

        public Criteria andKEqualTo(String value) {
            addCriterion("t.k =", value, "k");
            return (Criteria) this;
        }

        public Criteria andDescriptionBetween(String value1, String value2) {
            addCriterion("t.description between", value1, value2, "description");
            return (Criteria) this;
        }

        public Criteria andTypeNotLike(String value) {
            addCriterion("t.type not like", value, "type");
            return (Criteria) this;
        }

        public Criteria andDescriptionIn(List<String> values) {
            addCriterion("t.description in", values, "description");
            return (Criteria) this;
        }

        public Criteria andVNotLike(String value) {
            addCriterion("t.v not like", value, "v");
            return (Criteria) this;
        }

        public Criteria andUpdateUserIdNotEqualTo(Integer value) {
            addCriterion("t.updateUserId <>", value, "updateUserId");
            return (Criteria) this;
        }

        public Criteria andParentIdGreaterThan(Integer value) {
            addCriterion("t.parentId >", value, "parentId");
            return (Criteria) this;
        }

        public Criteria andParentKeyIsNull() {
            addCriterion("t.parentKey is null");
            return (Criteria) this;
        }

        public Criteria andDescriptionNotBetween(String value1, String value2) {
            addCriterion("t.description not between", value1, value2, "description");
            return (Criteria) this;
        }

        public Criteria andUpdateDateLessThan(Date value) {
            addCriterion("t.updateDate <", value, "updateDate");
            return (Criteria) this;
        }
    }

    /**
     * @mbg.generated Wed Jul 24 14:18:23 CST 2019
     */
    public static class Criterion {

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        private String condition;

        private boolean singleValue;

        private boolean noValue;

        private Object secondValue;

        private Object value;

        private String typeHandler;

        private boolean betweenValue;

        private boolean listValue;

        public boolean isSingleValue() {
            return singleValue;
        }

        public String getCondition() {
            return condition;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        public boolean isListValue() {
            return listValue;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public Object getValue() {
            return value;
        }
    }
}
